home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / gnustuff / minix / includ~1.z / includ~1 / curses.h < prev    next >
Encoding:
C/C++ Source or Header  |  1989-10-11  |  7.3 KB  |  287 lines

  1. #ifndef _CURSES_H
  2. #define _CURSES_H
  3.  
  4. /*
  5.  * Copyright 1980 Kenneth C. R. C. Arnold and The Regents of the
  6.  * University of California.  Permission is granted to freely
  7.  * distribute curses and its documentation provided that this
  8.  * notice is left intact.
  9.  *
  10.  *    @(#)curses.h    5.1 (Berkeley) 6/7/85
  11.  */
  12.  
  13. # ifndef WINDOW
  14.  
  15. # include    <stdio.h>
  16.  
  17. # include    <sgtty.h>
  18.  
  19. # define    bool    char
  20. # define    reg    register
  21.  
  22. # define    TRUE    (1)
  23. # define    FALSE    (0)
  24. # define    ERR    (0)
  25. # define    OK    (1)
  26.  
  27. # define    _ENDLINE    001
  28. # define    _FULLWIN    002
  29. # define    _SCROLLWIN    004
  30. # define    _FLUSH        010
  31. # define    _FULLLINE    020
  32. # define    _IDLINE        040
  33. # define    _STANDOUT    0200
  34. # define    _NOCHANGE    -1
  35.  
  36. # define    _puts(s)    tputs(s, 0, _putchar)
  37.  
  38. typedef    struct sgttyb    SGTTY;
  39.  
  40. /*
  41.  * Capabilities from termcap
  42.  */
  43.  
  44. extern bool     AM, BS, CA, DA, DB, EO, HC, HZ, IN, MI, MS, NC, NS, OS, UL,
  45.         XB, XN, XT, XS, XX;
  46. extern char    *AL, *BC, *BT, *CD, *CE, *CL, *CM, *CR, *CS, *DC, *DL,
  47.         *DM, *DO, *ED, *EI, *K0, *K1, *K2, *K3, *K4, *K5, *K6,
  48.         *K7, *K8, *K9, *HO, *IC, *IM, *IP, *KD, *KE, *KH, *KL,
  49.         *KR, *KS, *KU, *LL, *MA, *ND, *NL, *RC, *SC, *SE, *SF,
  50.         *SO, *SR, *TA, *TE, *TI, *UC, *UE, *UP, *US, *VB, *VS,
  51.         *VE, *AL_PARM, *DL_PARM, *UP_PARM, *DOWN_PARM,
  52.         *LEFT_PARM, *RIGHT_PARM;
  53. extern char    PC;
  54.  
  55. /*
  56.  * From the tty modes...
  57.  */
  58.  
  59. extern bool    GT, NONL, UPPERCASE, normtty, _pfast;
  60.  
  61. struct _win_st {
  62.     short        _cury, _curx;
  63.     short        _maxy, _maxx;
  64.     short        _begy, _begx;
  65.     short        _flags;
  66.     short        _ch_off;
  67.     bool        _clear;
  68.     bool        _leave;
  69.     bool        _scroll;
  70.     char        **_y;
  71.     short        *_firstch;
  72.     short        *_lastch;
  73.     struct _win_st    *_nextp, *_orig;
  74. };
  75.  
  76. # define    WINDOW    struct _win_st
  77.  
  78. extern bool    My_term, _echoit, _rawmode, _endwin;
  79.  
  80. extern char    *Def_term, ttytype[];
  81.  
  82. extern int    LINES, COLS, _tty_ch, _res_flg;
  83.  
  84. extern SGTTY    _tty;
  85.  
  86. extern WINDOW    *stdscr, *curscr;
  87.  
  88. /*
  89.  *    Define VOID to stop lint from generating "null effect"
  90.  * comments.
  91.  */
  92. # ifdef lint
  93. int    __void__;
  94. # define    VOID(x)    (__void__ = (int) (x))
  95. # else
  96. # define    VOID(x)    (x)
  97. # endif
  98.  
  99. /*
  100.  * psuedo functions for standard screen
  101.  */
  102. # define    addch(ch)    VOID(waddch(stdscr, ch))
  103. # define    getch()        VOID(wgetch(stdscr))
  104. # define    addstr(str)    VOID(waddstr(stdscr, str))
  105. # define    getstr(str)    VOID(wgetstr(stdscr, str))
  106. # define    move(y, x)    VOID(wmove(stdscr, y, x))
  107. # define    clear()        VOID(wclear(stdscr))
  108. # define    erase()        VOID(werase(stdscr))
  109. # define    clrtobot()    VOID(wclrtobot(stdscr))
  110. # define    clrtoeol()    VOID(wclrtoeol(stdscr))
  111. # define    insertln()    VOID(winsertln(stdscr))
  112. # define    deleteln()    VOID(wdeleteln(stdscr))
  113. # define    refresh()    VOID(wrefresh(stdscr))
  114. # define    inch()        VOID(winch(stdscr))
  115. # define    insch(c)    VOID(winsch(stdscr,c))
  116. # define    delch()        VOID(wdelch(stdscr))
  117. # define    standout()    VOID(wstandout(stdscr))
  118. # define    standend()    VOID(wstandend(stdscr))
  119.  
  120. /*
  121.  * mv functions
  122.  */
  123. #define    mvwaddch(win,y,x,ch)    VOID(wmove(win,y,x)==ERR?ERR:waddch(win,ch))
  124. #define    mvwgetch(win,y,x)    VOID(wmove(win,y,x)==ERR?ERR:wgetch(win))
  125. #define    mvwaddstr(win,y,x,str)    VOID(wmove(win,y,x)==ERR?ERR:waddstr(win,str))
  126. #define mvwgetstr(win,y,x,str)  VOID(wmove(win,y,x)==ERR?ERR:wgetstr(win,str))
  127. #define    mvwinch(win,y,x)    VOID(wmove(win,y,x) == ERR ? ERR : winch(win))
  128. #define    mvwdelch(win,y,x)    VOID(wmove(win,y,x) == ERR ? ERR : wdelch(win))
  129. #define    mvwinsch(win,y,x,c)    VOID(wmove(win,y,x) == ERR ? ERR:winsch(win,c))
  130. #define    mvaddch(y,x,ch)        mvwaddch(stdscr,y,x,ch)
  131. #define    mvgetch(y,x)        mvwgetch(stdscr,y,x)
  132. #define    mvaddstr(y,x,str)    mvwaddstr(stdscr,y,x,str)
  133. #define mvgetstr(y,x,str)       mvwgetstr(stdscr,y,x,str)
  134. #define    mvinch(y,x)        mvwinch(stdscr,y,x)
  135. #define    mvdelch(y,x)        mvwdelch(stdscr,y,x)
  136. #define    mvinsch(y,x,c)        mvwinsch(stdscr,y,x,c)
  137.  
  138. /*
  139.  * psuedo functions
  140.  */
  141.  
  142. #define    clearok(win,bf)     (win->_clear = bf)
  143. #define    leaveok(win,bf)     (win->_leave = bf)
  144. #define    scrollok(win,bf) (win->_scroll = bf)
  145. #define flushok(win,bf)     (bf ? (win->_flags |= _FLUSH):(win->_flags &= ~_FLUSH))
  146. #define    getyx(win,y,x)     y = win->_cury, x = win->_curx
  147. #define    winch(win)     (win->_y[win->_cury][win->_curx] & 0177)
  148.  
  149. #define raw()     (_tty.sg_flags|=RAW, _pfast=_rawmode=TRUE, stty(_tty_ch,&_tty))
  150. #define noraw()     (_tty.sg_flags&=~RAW,_rawmode=FALSE,_pfast=!(_tty.sg_flags&CRMOD),stty(_tty_ch,&_tty))
  151. #define cbreak() (_tty.sg_flags |= CBREAK, _rawmode = TRUE, stty(_tty_ch,&_tty))
  152. #define nocbreak() (_tty.sg_flags &= ~CBREAK,_rawmode=FALSE,stty(_tty_ch,&_tty))
  153. #define crmode() cbreak()    /* backwards compatability */
  154. #define nocrmode() nocbreak()    /* backwards compatability */
  155. #define echo()     (_tty.sg_flags |= ECHO, _echoit = TRUE, stty(_tty_ch, &_tty))
  156. #define noecho() (_tty.sg_flags &= ~ECHO, _echoit = FALSE, stty(_tty_ch, &_tty))
  157. #define nl()     (_tty.sg_flags |= CRMOD,_pfast = _rawmode,stty(_tty_ch, &_tty))
  158. #define nonl()     (_tty.sg_flags &= ~CRMOD, _pfast = TRUE, stty(_tty_ch, &_tty))
  159. #define    savetty() ((void) gtty(_tty_ch, &_tty), _res_flg = _tty.sg_flags)
  160. #define    resetty() (_tty.sg_flags = _res_flg, (void) stty(_tty_ch, &_tty))
  161.  
  162. #define    erasechar()    (_tty.sg_erase)
  163. #define    killchar()    (_tty.sg_kill)
  164. #define baudrate()    (_tty.sg_ospeed)
  165.  
  166.  
  167. /*
  168.  * Used to be in unctrl.h.
  169.  */
  170. #define    unctrl(c)    _unctrl[(c) & 0177]
  171. extern char *_unctrl[];
  172. # endif
  173.  
  174. #ifdef __STDC__
  175. #ifndef __NO_PROTO__
  176. void        _id_subwins(WINDOW *);
  177. int        _putchar(int);
  178. void        _set_subwin_(WINDOW *, WINDOW *);
  179. int         _sprintw(WINDOW *, char *, char *);
  180. int         _sscans(WINDOW *, char *, long *);
  181. void        _swflags_(WINDOW *);
  182.  
  183. void        box(WINDOW *, int, int);
  184.  
  185. void        delwin(WINDOW *);
  186.  
  187. void        endwin(void);
  188.  
  189. void        fgoto(void);
  190. char *        fullname(char *, char *);
  191.  
  192. char *        getcap(char *);
  193. void        gettmode(void);
  194.  
  195. void        idlok(WINDOW *, int);
  196. WINDOW *    initscr(void);
  197.  
  198. char *        longname(char *, char *);
  199.  
  200. void        mvcur(int, int, int, int);
  201. #ifdef __C_SRC__
  202. int        mvprintw(int);
  203. int         mvwprintw(int);
  204. int        mvscanw(int, int, char *, long);
  205. int        mvwscanw(WINDOW *, int, int, char *, long);
  206. #else
  207. int        mvprintw(int, int, char *, ...);
  208. int         mvwprintw(WINDOW *, int, int, char *, ...);
  209. int        mvscanw(int, int, char *, ...);
  210. int        mvwscanw(WINDOW *, int, int, char *, ...);
  211. #endif
  212. int        mvwin(WINDOW *, int, int);
  213.  
  214. WINDOW *    newwin(int, int, int, int);
  215.  
  216. void        overlay(WINDOW *, WINDOW *);
  217. void        overwrite(WINDOW *, WINDOW *);
  218. int        plod(int);
  219. int        plodput(int);
  220.  
  221. #ifdef __C_SRC__
  222. int        printw(int);
  223. #else
  224. int        printw(char *, ...);
  225. #endif
  226.  
  227. #ifdef __C_SRC__
  228. int        scanw(char *, long);
  229. #else
  230. int        scanw(char *, ...);
  231. #endif
  232. int        scroll(WINDOW *);
  233. int        setterm(char *);
  234. WINDOW *    subwin(WINDOW *, int, int, int, int);
  235.  
  236. int        tabcol(int, int);
  237. void        touchline(WINDOW *, int, int, int);
  238. void        touchoverlap(WINDOW *, WINDOW *);
  239. void        touchwin(WINDOW *);
  240. void        tstp(void);
  241.  
  242. int        waddch(WINDOW *, int);
  243. int        waddstr(WINDOW *, char *);
  244. int        wclear(WINDOW *);
  245. void        wclrtobot(WINDOW *);
  246. void        wclrtoeol(WINDOW *);
  247. int        wdelch(WINDOW *);
  248. int        wdeleteln(WINDOW *);
  249. void        werase(WINDOW *);
  250. int        wgetch(WINDOW *);
  251. int        wgetstr(WINDOW *, char *);
  252. int        winsch(WINDOW *, int);
  253. void        winsertln(WINDOW *);
  254. int        wmove(WINDOW *, int, int);
  255.  
  256. #ifdef __C_SRC__
  257. int        wprintw(int);
  258. #else
  259. int        wprintw(WINDOW *, char *, ...);
  260. #endif
  261. int        wrefresh(WINDOW *);
  262. #ifdef __C_SRC__
  263. int        wscanw(WINDOW *, char *, long);
  264. #else
  265. int        wscanw(WINDOW *, char *, ...);
  266. #endif
  267. char *        wstandend(WINDOW *);
  268. char *        wstandout(WINDOW *);
  269.  
  270. void        zap(void);
  271.  
  272. #else
  273.  
  274. WINDOW    *initscr(), *newwin(), *subwin();
  275. char    *longname(), *getcap();
  276.  
  277. #endif /* __NO_PROTO__ */
  278.  
  279. #else
  280.  
  281. WINDOW    *initscr(), *newwin(), *subwin();
  282. char    *longname(), *getcap();
  283.  
  284. #endif    /* __STDC__ */
  285.  
  286. #endif /* _CURSES_H */
  287.